package com.gitee.srurl.core.util;

import cn.hutool.core.util.StrUtil;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;

/**
 * @author zxw
 * @date 2023/4/29 19:28
 */
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public abstract class ShortUrlUtil {

    public static String getShortIdByShortUrl(String shortUrl) {

        if (StrUtil.isBlank(shortUrl)) {
            return null;
        }
        // 如果最后一位是这些参数 则去除
        if (StrUtil.endWithAny(shortUrl, "/", "?")) {
            shortUrl = StrUtil.sub(shortUrl, 0, shortUrl.length() - 1);
        }

        // 去除参数 虽然现在没有这个参数 不保证以后不会加
        int index = shortUrl.indexOf("?");
        if (index != -1) {
            // 去除后置参数
            shortUrl = StrUtil.sub(shortUrl, 0, index);
        }

        index = StrUtil.lastIndexOf(shortUrl, "/", shortUrl.length(), false);
        if (index == -1) {
            return null;
        }

        return StrUtil.sub(shortUrl, index + 1, shortUrl.length());
    }
}
